package com.soft.javase.ch07.custom;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/28
 *
 * 自定义异常
 * 1.继承Exception类，编译期异常
 * 2.继承RuntimeException类，运行期异常
 *
 * 编译期的自定义异常
 * 1.继承extends  Exception类
 * 2.生成构造方法无参、带String的有参构造方法
 * 3.throw new 编译期的自定义异常("异常信息");
 * 一旦抛出后，会强制进行处理，要么throws，要么try；一般建议继续向上抛throws
 *
 * 运行期的自定义异常
 * 1.继承 extends RuntimeException类
 * 2.生成构造方法无参、带String的有参构造方法
 * 3.throw new 运行期的自定义异常("异常信息");
 * 一旦抛出后，并不会强制要求处理，直到运行时满足抛出异常的条件后才会由控制台输出异常信息
 */
public class CustomException2 extends RuntimeException {

    public CustomException2() {
    }

    public CustomException2(String message) {
        super(message);
    }
}

class Test2{
    public static void isFlag(boolean flag) {
        if (flag) {
            throw new CustomException2("抛出异常信息");
        }
    }
    public static void main(String[] args) {
        isFlag(true);    }
}
